using System.Threading.Tasks;
using JNPF.Utils;
using System.Collections.Generic;
using JNPF.Basics.Models;

namespace JNPF.Basics.Logic
{
    public interface jiushiCustomerconsultantIService
    {
        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="id">主键id</param>
        /// <returns></returns>
        Task<jiushiCustomerconsultantListOutput> GetInfoResult(int id);



        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="id">主键id</param>
        /// <returns></returns>
        Task<CustomerconsultantEntity> GetInfo(int id);

        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="id">主键id</param>
        /// <returns></returns>
        Task<CustomerconsultantEntity> GetInfoByUuid(string uuid);

        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="id">主键id</param>
        /// <returns></returns>
        Task<CustomerconsultantEntity> GetInfoByCustomerId(int CustomerId);


        /// <summary>
        /// 列表(分页)
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        Task<PageResult<CustomerconsultantEntity>> GetPageList(jiushiCustomerconsultantListQueryInput input);

        /// <summary>
        /// 列表（我收到的）
        /// </summary>
        /// <param name="userId">用户主键</param>
        /// <returns></returns>
        Task<PageResult<jiushiCustomerconsultantListOutput>> GetCusPageList(jiushiCustomerconsultantListQueryInput input);

        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Create(CustomerconsultantEntity entity);

        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task Create(CustomerconsultantEntity entity, CustomerconsultantdetailEntity customerconsultantdetail, List<UserextendEntity> userextendEntities, List<PointsdetailsEntity> pointsdetailsEntities, CustomerbaseEntity customerbaseEntity);

        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task Create(CustomerconsultantEntity entity, CustomerconsultantdetailEntity customerconsultantdetail);




        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Update(CustomerconsultantEntity entity);


        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task End(CustomerconsultantEntity customerconsultantEntity,CustomerbaseEntity customerbaseEntity, UserEntity userEntity, UserextendEntity userextendEntity);


        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Delete(CustomerconsultantEntity entity);

        /// <summary>
        /// 列表
        /// </summary>
        /// <returns></returns>
        Task<List<CustomerconsultantEntity>> GetList(jiushiCustomerconsultantListQueryInput input);


    }
}
